import Taro from '@tarojs/taro';

const  WeappUtils = {}

  /**
   * Promise封装wx.checkSession
   */
  WeappUtils.CheckSession=() =>{
    return new Promise(function(resolve, reject) {
      Taro.checkSession({
        success: function() {

          resolve(true);
        },
        fail: function() {

          reject(false);
        }
      })
    });
  }

  /**
   * Promise封装wx.login
   * 临时登录凭证code ，并回传到开发者服务器。
   */
  WeappUtils.Login=() =>{
    return new Promise(function(resolve, reject) {
      Taro.login({
        success: function(res) {
          if (res.code) {
            resolve(res);
          } else {
            reject(res);
          }
        },
        fail: function(err) {
          reject(err);
        }
      });
    });
  }


  /**
   * 调用微信登录
   */
  WeappUtils.LoginByWeixin=(userInfo) =>{
    return new Promise(function(resolve, reject) {
      return this.login().then((res) => {
        //登录远程服务器
        loginByWeXin({
          code: res.code,
          userInfo: userInfo
        }).then(loginRes => {
          //存储用户信息
          Taro.setStorageSync('userInfo', loginRes.userInfo);
          Taro.setStorageSync('token', loginRes.token);

          resolve(loginRes);
        }).catch(err => {
          reject(err);
        })

      }).catch((err) => {
        reject(err);
      })
    });
  }

  /**
   * 判断用户是否登录
   */
  WeappUtils.CheckLogin=()=> {
    return new Promise(function(resolve, reject) {
      if (Taro.getStorageSync('userInfo') && Taro.getStorageSync('token')) {
        checkSession().then(() => {
          resolve(true);
        }).catch(() => {
          reject(false);
        });
      } else {
        reject(false);
      }
    });
  }

export default WeappUtils
